Kod startowy
Do tej pory kod pisaliśmy "od zera" jednak teraz znacznie przyśpieszymy proces tworzenia bota poprzez użycie kodu z dokumentacji biblioteki Discord.py
Czym jest async i await?
W kodzie pojawia się czasem słówko async i await, którego nie było wcześniej. To jest wprowadzenie konceptu kodu asynchronicznego. W dużym uproszczeniu dzięki temu python może wykonywać wiele czynności jednocześnie. Słówko await sprawia, że python "czeka" na wykonanie danej linijki. Jest to dość zawiły koncept na start. W przyszłości wgłebimy się w niego nieco bardziej
Kod startowy
import discord class MyClient(discord.Client): async def on_ready(self): print(f'Zalogowano jako {self.user}!') async def on_message(self, message): print(f'Wiadomość od {message.author}: {message.content}') intents = discord.Intents.default() intents.message_content = True client = MyClient(intents=intents) client.run('TWÓJ TOKEN')
Dużo się dzieje na start. Wytłumaczmy to linijka po linijce
import discord
tutaj importujemy bibliotekę discord, którą pobraliśmy wcześniej poprzez pip
class MyClient(discord.Client):
w tym momencie tworzymy klasę MyClient, która dziedziczy po wbudowanej klasie biblioteki discord.Client. Dzięki temu, nasza klasa MyClient przejmuje wszystkie właściwości i metody, które są nam potrzebne do pisania bota
async def on_ready(self): print(f'Zalogowano jako {self.user}!')
Metoda on_ready wykonuje się tylko raz, kiedy bot zaloguje się do discorda. Aktualnie wyświetla ona tylko w konsoli informację o tym wraz z nazwą użytkownika naszego bota (właściwość self.user)
async def on_message(self, message): print(f'Wiadomość od {message.author}: {message.content}')
Metoda on_message wykonuje się za każdym razem, kiedy ktoś napisze wiadomość na kanale tekstowym. Oprócz self posiada ona argument message, który przechowuje wiadomość, po której wykonała się funkcja. W tym momencie funkcja wyświetla w konsoli tylko jej autora (message.author) oraz jej treść (message.content). Ta metoda na start będzie metodą, w której będziemy pisać większość kodu
intents = discord.Intents.default() intents.message_content = True client = MyClient(intents=intents)
W tym momencie nadajemy naszemu botowi uprawnienia do czytania i wysyłania wiadomości oraz tworzymy obiekt naszej klasy MyClient o nazwie client i podajemy mu w argumencie te uprawnienia
client.run('TWÓJ TOKEN')
Na koniec uruchamiamy naszego bota. Musimy mu podać token, który wcześniej wzieliśmy ze strony Discord Developer Portal